﻿using DAL;
using Model;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MainOP
{
    public partial class FormDataSelect : Form
    {
        public FormDataSelect()
        {
            InitializeComponent();
        }
        List<ProductData> objProductData = new List<ProductData>();
        private void button1_Click(object sender, EventArgs e)
        {
            //查询前先清空数据集
            objProductData.Clear();
            //清空表格再查询
            while (this.dataGridView1.Rows.Count != 1)
            {
                this.dataGridView1.DataSource = null;
            }
            //string sql = "select [产品下线时间], [产品型号], [总成码],[序列号], [总结果], [OP10结果], [内部码], [OP10操作时间], [OP10操作员], [OP20结果], [OP20操作时间], [OP20操作员], [OP30操作时间], [OP30结果], [OP40结果],[OP40操作时间], [OP40操作员], [OP50结果], [OP50操作时间], [OP50操作员], [OP60结果],[OP60操作时间], [OP60操作员], [OP70结果], [OP70操作时间], [OP70操作员], [OP80结果],[OP80操作时间], [OP80操作员], [OP90结果], [OP90操作时间], [OP90操作员], [OP100结果], [OP100操作时间], [OP100操作员], [OP110结果], [OP130人工判定结果], [OP130操作员], [ID],[托盘号] from productData where [产品下线时间] Between '{0}' and '{1}' order by [产品下线时间] ASC";
            string sql = "select [产品下线时间], [产品型号], [总成码],[序列号], [总结果], [OP10-1结果], [OP10-1节拍], [OP10-1完成时间], [OP10-2结果], [OP10-2节拍], [OP10结果], [内部码], [OP10操作时间], [OP20结果], [OP20操作时间], [OP30操作时间], [OP30结果], [OP40结果], [OP40操作时间], [OP50结果], [OP50操作时间], [OP60结果], [OP60操作时间], [OP70结果], [OP70操作时间], [OP80结果], [OP80操作时间], [OP90结果], [OP90操作时间], [OP100结果], [OP100操作时间], [OP110结果], [OP100人工判定结果], [返修次数], [ID], [托盘号] from productData where [产品下线时间] Between '{0}' and '{1}' order by [产品下线时间] ASC";
            sql = string.Format(sql, dateTimePicker1.Text, dateTimePicker2.Text);
            SqlDataReader objReader = SQLHelp.GetReader(sql);
            //循环写入数据
            while (objReader.Read())
            {
                ProductData productData = new ProductData();
                try
                {
                    productData.产品下线时间 = Convert.ToDateTime(objReader["产品下线时间"]);
                }
                catch { }
                
                productData.产品型号 = objReader["产品型号"].ToString();
                productData.总成码 = objReader["总成码"].ToString();
                productData.序列号 = objReader["序列号"].ToString();
                productData.总结果 = objReader["总结果"].ToString();
                productData.内部码 = objReader["内部码"].ToString();
                productData.OP101结果 = objReader["OP10-1结果"].ToString();
                productData.OP101操作时间 = objReader["OP10-1节拍"].ToString();
                productData.OP101完成时间 = objReader["OP10-1完成时间"].ToString();
                productData.OP102结果 = objReader["OP10-2结果"].ToString();
                productData.OP102操作时间 = objReader["OP10-2节拍"].ToString();
                //productData.OP10操作员 = objReader["OP10操作员"].ToString();
                productData.OP10结果 = objReader["OP10结果"].ToString();
                productData.OP10操作时间 = objReader["OP10操作时间"].ToString();
                productData.OP20结果 = objReader["OP20结果"].ToString();
                productData.OP20操作时间 = objReader["OP20操作时间"].ToString();
                //productData.OP20操作员 = objReader["OP20操作员"].ToString();
                productData.OP30结果 = objReader["OP30结果"].ToString();
                productData.OP30操作时间 = objReader["OP30操作时间"].ToString();
                productData.OP40结果 = objReader["OP40结果"].ToString();
                productData.OP40操作时间 = objReader["OP40操作时间"].ToString();
                //productData.OP40操作员 = objReader["OP40操作员"].ToString();
                productData.OP50结果 = objReader["OP50结果"].ToString();
                productData.OP50操作时间 = objReader["OP50操作时间"].ToString();
                //productData.OP50操作员 = objReader["OP50操作员"].ToString();
                productData.OP60结果 = objReader["OP60结果"].ToString();
                productData.OP60操作时间 = objReader["OP60操作时间"].ToString();
                //productData.OP60操作员 = objReader["OP60操作员"].ToString();
                productData.OP70结果 = objReader["OP70结果"].ToString();
                productData.OP70操作时间 = objReader["OP70操作时间"].ToString();
                //productData.OP70操作员 = objReader["OP70操作员"].ToString();
                productData.OP80结果 = objReader["OP80结果"].ToString();
                productData.OP80操作时间 = objReader["OP80操作时间"].ToString();
                //productData.OP80操作员 = objReader["OP80操作员"].ToString();
                productData.OP90结果 = objReader["OP90结果"].ToString();
                productData.OP90操作时间 = objReader["OP90操作时间"].ToString();
                //productData.OP90操作员 = objReader["OP90操作员"].ToString();
                productData.OP100结果 = objReader["OP100结果"].ToString();
                productData.OP100操作时间 = objReader["OP100操作时间"].ToString();
                productData.OP100人工判定结果 = objReader["OP100人工判定结果"].ToString();
                productData.返修次数 = objReader["返修次数"].ToString();
                //productData.OP100操作员 = objReader["OP100操作员"].ToString();
                //productData.OP110结果 = objReader["OP110结果"].ToString();
                //productData.OP130人工判定结果 = objReader["OP130人工判定结果"].ToString();
                //productData.OP130操作员 = objReader["OP130操作员"].ToString();
                productData.托盘号 = objReader["托盘号"].ToString();
                objProductData.Add(productData);
            }
            
            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource = objProductData;
            objReader.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //查询前先清空数据集
            objProductData.Clear();
            //清空表格再查询
            while (this.dataGridView1.Rows.Count != 1)
            {
                this.dataGridView1.DataSource = null;
            }
            //string sql = "select * from productData where concat([产品下线时间], [产品型号], [序列号], [总结果], [OP10结果], [内部码], [OP10操作时间], [OP10操作员], [OP20结果], [OP20操作时间], [OP20操作员], [OP30操作时间], [OP30结果], [OP40结果],[OP40操作时间], [OP40操作员], [OP50结果], [OP50操作时间], [OP50操作员], [OP60结果],[OP60操作时间], [OP60操作员], [OP70结果], [OP70操作时间], [OP70操作员], [OP80结果],[OP80操作时间], [OP80操作员], [OP90结果], [OP90操作时间], [OP90操作员], [OP100结果], [OP100操作时间], [OP100操作员], [OP110结果], [OP130人工判定结果], [OP130操作员], [ID],[总成码]) like '%{0}%'";
            string sql = "select * from productData where concat([产品下线时间], [产品型号], [序列号], [总结果], [内部码], [OP10-1结果], [OP10-1完成时间], [OP10-1节拍], [OP10-2结果], [OP10-2节拍], [OP10结果], [OP10操作时间], [OP20结果], [OP20操作时间], [OP30结果], [OP30操作时间], [OP40结果],[OP40操作时间], [OP50结果], [OP50操作时间], [OP60结果],[OP60操作时间], [OP70结果], [OP70操作时间], [OP80结果],[OP80操作时间], [OP90结果], [OP90操作时间], [OP100结果], [OP100操作时间], [OP100人工判定结果], [ID],[总成码]) like '%{0}%'";
            sql = string.Format(sql, textBox1.Text);
            SqlDataReader objReader = SQLHelp.GetReader(sql);
            //循环写入数据
            while (objReader.Read())
            {
                ProductData productData = new ProductData();
                try
                {
                    productData.产品下线时间 = Convert.ToDateTime(objReader["产品下线时间"]);
                }
                catch
                {

                }
                productData.产品型号 = objReader["产品型号"].ToString();
                productData.序列号 = objReader["序列号"].ToString();
                productData.总成码 = objReader["总成码"].ToString();
                productData.总结果 = objReader["总结果"].ToString();
                productData.内部码 = objReader["内部码"].ToString();
                productData.OP101结果 = objReader["OP10-1结果"].ToString();
                productData.OP101操作时间 = objReader["OP10-1节拍"].ToString();
                productData.OP101完成时间 = objReader["OP10-1完成时间"].ToString();
                productData.OP102结果 = objReader["OP10-2结果"].ToString();
                productData.OP102操作时间 = objReader["OP10-2节拍"].ToString();
                //productData.OP10操作员 = objReader["OP10操作员"].ToString();
                productData.OP10结果 = objReader["OP10结果"].ToString();
                productData.OP10操作时间 = objReader["OP10操作时间"].ToString();
                productData.OP20结果 = objReader["OP20结果"].ToString();
                productData.OP20操作时间 = objReader["OP20操作时间"].ToString();
                //productData.OP20操作员 = objReader["OP20操作员"].ToString();
                productData.OP30结果 = objReader["OP30结果"].ToString();
                productData.OP30操作时间 = objReader["OP30操作时间"].ToString();
                productData.OP40结果 = objReader["OP40结果"].ToString();
                productData.OP40操作时间 = objReader["OP40操作时间"].ToString();
                //productData.OP40操作员 = objReader["OP40操作员"].ToString();
                productData.OP50结果 = objReader["OP50结果"].ToString();
                productData.OP50操作时间 = objReader["OP50操作时间"].ToString();
                //productData.OP50操作员 = objReader["OP50操作员"].ToString();
                productData.OP60结果 = objReader["OP60结果"].ToString();
                productData.OP60操作时间 = objReader["OP60操作时间"].ToString();
                //productData.OP60操作员 = objReader["OP60操作员"].ToString();
                productData.OP70结果 = objReader["OP70结果"].ToString();
                productData.OP70操作时间 = objReader["OP70操作时间"].ToString();
                //productData.OP70操作员 = objReader["OP70操作员"].ToString();
                productData.OP80结果 = objReader["OP80结果"].ToString();
                productData.OP80操作时间 = objReader["OP80操作时间"].ToString();
                //productData.OP80操作员 = objReader["OP80操作员"].ToString();
                productData.OP90结果 = objReader["OP90结果"].ToString();
                productData.OP90操作时间 = objReader["OP90操作时间"].ToString();
                //productData.OP90操作员 = objReader["OP90操作员"].ToString();
                productData.OP100结果 = objReader["OP100结果"].ToString();
                productData.OP100操作时间 = objReader["OP100操作时间"].ToString();
                productData.OP100人工判定结果 = objReader["OP100人工判定结果"].ToString();
                productData.返修次数 = objReader["返修次数"].ToString();
                //productData.OP100操作员 = objReader["OP100操作员"].ToString();
                //productData.OP110结果 = objReader["OP110结果"].ToString();
                //productData.OP130人工判定结果 = objReader["OP130人工判定结果"].ToString();
                //productData.OP130操作员 = objReader["OP130操作员"].ToString();
                objProductData.Add(productData);
            }
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = objProductData;
            objReader.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //创建Excel工作簿和工作表
            XSSFWorkbook workbook = new XSSFWorkbook();
            ISheet newsheet = workbook.CreateSheet("追溯记录");

            //创建Excel工作表的列标题
            IRow rowHeader = newsheet.CreateRow(0);
            //rowHeader.CreateCell(0, CellType.String).SetCellValue("产品下线时间");
            //rowHeader.CreateCell(1, CellType.String).SetCellValue("产品型号");
            //rowHeader.CreateCell(2, CellType.String).SetCellValue("序列号");
            //rowHeader.CreateCell(3, CellType.String).SetCellValue("总成码");
            //rowHeader.CreateCell(4, CellType.String).SetCellValue("总结果");
            //rowHeader.CreateCell(5, CellType.String).SetCellValue("内部码");
            //rowHeader.CreateCell(6, CellType.String).SetCellValue("OP10结果");
            //rowHeader.CreateCell(7, CellType.String).SetCellValue("OP10操作完成时间");
            //rowHeader.CreateCell(8, CellType.String).SetCellValue("OP10操作员");
            //rowHeader.CreateCell(9, CellType.String).SetCellValue("OP20结果");
            //rowHeader.CreateCell(10, CellType.String).SetCellValue("OP20操作时间");
            //rowHeader.CreateCell(11, CellType.String).SetCellValue("OP20操作员");
            //rowHeader.CreateCell(12, CellType.String).SetCellValue("OP30结果");
            //rowHeader.CreateCell(13, CellType.String).SetCellValue("OP40结果");
            //rowHeader.CreateCell(14, CellType.String).SetCellValue("OP40操作时间");
            //rowHeader.CreateCell(15, CellType.String).SetCellValue("OP40操作员");
            //rowHeader.CreateCell(16, CellType.String).SetCellValue("OP50结果");
            //rowHeader.CreateCell(17, CellType.String).SetCellValue("OP50操作时间");
            //rowHeader.CreateCell(18, CellType.String).SetCellValue("OP50操作员");
            //rowHeader.CreateCell(19, CellType.String).SetCellValue("OP60结果");
            //rowHeader.CreateCell(20, CellType.String).SetCellValue("OP60操作时间");
            //rowHeader.CreateCell(21, CellType.String).SetCellValue("OP60操作员");
            //rowHeader.CreateCell(22, CellType.String).SetCellValue("OP70结果");
            //rowHeader.CreateCell(23, CellType.String).SetCellValue("OP70操作时间");
            //rowHeader.CreateCell(24, CellType.String).SetCellValue("OP70操作员");
            //rowHeader.CreateCell(25, CellType.String).SetCellValue("OP80结果");
            //rowHeader.CreateCell(26, CellType.String).SetCellValue("OP80操作时间");
            //rowHeader.CreateCell(27, CellType.String).SetCellValue("OP80操作员");
            //rowHeader.CreateCell(28, CellType.String).SetCellValue("OP90结果");
            //rowHeader.CreateCell(29, CellType.String).SetCellValue("OP90操作时间");
            //rowHeader.CreateCell(30, CellType.String).SetCellValue("OP90操作员");
            //rowHeader.CreateCell(31, CellType.String).SetCellValue("OP100结果");
            //rowHeader.CreateCell(32, CellType.String).SetCellValue("OP100操作时间");
            //rowHeader.CreateCell(33, CellType.String).SetCellValue("OP100操作员");
            //rowHeader.CreateCell(34, CellType.String).SetCellValue("OP110结果");
            //rowHeader.CreateCell(35, CellType.String).SetCellValue("OP130人工判定结果");
            //rowHeader.CreateCell(36, CellType.String).SetCellValue("OP130操作员");
            rowHeader.CreateCell(0, CellType.String).SetCellValue("产品下线时间");
            rowHeader.CreateCell(1, CellType.String).SetCellValue("产品型号");
            rowHeader.CreateCell(2, CellType.String).SetCellValue("序列号");
            rowHeader.CreateCell(3, CellType.String).SetCellValue("总成码");
            rowHeader.CreateCell(4, CellType.String).SetCellValue("总结果");
            rowHeader.CreateCell(5, CellType.String).SetCellValue("内部码");

            rowHeader.CreateCell(6, CellType.String).SetCellValue("OP10-1结果");
            rowHeader.CreateCell(7, CellType.String).SetCellValue("OP10-1完成时间");
            rowHeader.CreateCell(8, CellType.String).SetCellValue("OP10-1操作时间");

            rowHeader.CreateCell(9, CellType.String).SetCellValue("OP10-2结果"); 
            rowHeader.CreateCell(10, CellType.String).SetCellValue("OP10-2操作时间");

            rowHeader.CreateCell(11, CellType.String).SetCellValue("OP10结果");
            rowHeader.CreateCell(12, CellType.String).SetCellValue("OP10操作时间");
            
            rowHeader.CreateCell(13, CellType.String).SetCellValue("OP20结果");
            rowHeader.CreateCell(14, CellType.String).SetCellValue("OP20操作时间");
            
            rowHeader.CreateCell(15, CellType.String).SetCellValue("OP30结果");
            rowHeader.CreateCell(16, CellType.String).SetCellValue("OP30操作时间");
            
            rowHeader.CreateCell(17, CellType.String).SetCellValue("OP40结果");
            rowHeader.CreateCell(18, CellType.String).SetCellValue("OP40操作时间");
            
            rowHeader.CreateCell(19, CellType.String).SetCellValue("OP50结果");
            rowHeader.CreateCell(20, CellType.String).SetCellValue("OP50操作时间");
            
            rowHeader.CreateCell(21, CellType.String).SetCellValue("OP60结果");
            rowHeader.CreateCell(22, CellType.String).SetCellValue("OP60操作时间");
            
            rowHeader.CreateCell(23, CellType.String).SetCellValue("OP70结果");
            rowHeader.CreateCell(24, CellType.String).SetCellValue("OP70操作时间");
            
            rowHeader.CreateCell(25, CellType.String).SetCellValue("OP80结果");
            rowHeader.CreateCell(26, CellType.String).SetCellValue("OP80操作时间");
            
            rowHeader.CreateCell(27, CellType.String).SetCellValue("OP90结果");
            rowHeader.CreateCell(28, CellType.String).SetCellValue("OP90操作时间");
            
            rowHeader.CreateCell(29, CellType.String).SetCellValue("OP100结果");
            rowHeader.CreateCell(30, CellType.String).SetCellValue("OP100操作时间");
            rowHeader.CreateCell(31, CellType.String).SetCellValue("OP100人工判定结果");


            rowHeader.CreateCell(32, CellType.String).SetCellValue("返修次数");
            //rowHeader.CreateCell(34, CellType.String).SetCellValue("OP110结果");


            //循环创建Excel行，并填充数据
            for (int i = 0; i < objProductData.Count; i++)
            {
                IRow row = newsheet.CreateRow(i + 1);
                //row.CreateCell(0, CellType.String).SetCellValue(objProductData[i].产品下线时间);
                //row.CreateCell(1, CellType.String).SetCellValue(objProductData[i].产品型号);
                //row.CreateCell(2, CellType.String).SetCellValue(objProductData[i].序列号);
                //row.CreateCell(3, CellType.String).SetCellValue(objProductData[i].总成码);
                //row.CreateCell(4, CellType.String).SetCellValue(objProductData[i].总结果);
                //row.CreateCell(5, CellType.String).SetCellValue(objProductData[i].内部码);
                //row.CreateCell(6, CellType.String).SetCellValue(objProductData[i].OP10结果);
                //row.CreateCell(7, CellType.String).SetCellValue(objProductData[i].OP10操作时间);
                //row.CreateCell(8, CellType.String).SetCellValue(objProductData[i].OP10操作员);
                //row.CreateCell(9, CellType.String).SetCellValue(objProductData[i].OP20结果);
                //row.CreateCell(10, CellType.String).SetCellValue(objProductData[i].OP20操作时间);
                //row.CreateCell(11, CellType.String).SetCellValue(objProductData[i].OP20操作员);
                //row.CreateCell(12, CellType.String).SetCellValue(objProductData[i].OP30结果);
                //row.CreateCell(13, CellType.String).SetCellValue(objProductData[i].OP40结果);
                //row.CreateCell(14, CellType.String).SetCellValue(objProductData[i].OP40操作时间);
                //row.CreateCell(15, CellType.String).SetCellValue(objProductData[i].OP40操作员);
                //row.CreateCell(16, CellType.String).SetCellValue(objProductData[i].OP50结果);
                //row.CreateCell(17, CellType.String).SetCellValue(objProductData[i].OP50操作时间);
                //row.CreateCell(18, CellType.String).SetCellValue(objProductData[i].OP50操作员);
                //row.CreateCell(19, CellType.String).SetCellValue(objProductData[i].OP60结果);
                //row.CreateCell(20, CellType.String).SetCellValue(objProductData[i].OP60操作时间);
                //row.CreateCell(21, CellType.String).SetCellValue(objProductData[i].OP60操作员);
                //row.CreateCell(22, CellType.String).SetCellValue(objProductData[i].OP70结果);
                //row.CreateCell(23, CellType.String).SetCellValue(objProductData[i].OP70操作时间);
                //row.CreateCell(24, CellType.String).SetCellValue(objProductData[i].OP70操作员);
                //row.CreateCell(25, CellType.String).SetCellValue(objProductData[i].OP80结果);
                //row.CreateCell(26, CellType.String).SetCellValue(objProductData[i].OP80操作时间);
                //row.CreateCell(27, CellType.String).SetCellValue(objProductData[i].OP80操作员);
                //row.CreateCell(28, CellType.String).SetCellValue(objProductData[i].OP90结果);
                //row.CreateCell(29, CellType.String).SetCellValue(objProductData[i].OP90操作时间);
                //row.CreateCell(30, CellType.String).SetCellValue(objProductData[i].OP90操作员);
                //row.CreateCell(31, CellType.String).SetCellValue(objProductData[i].OP100结果);
                //row.CreateCell(32, CellType.String).SetCellValue(objProductData[i].OP100操作时间);
                //row.CreateCell(33, CellType.String).SetCellValue(objProductData[i].OP100操作员);
                //row.CreateCell(34, CellType.String).SetCellValue(objProductData[i].OP110结果);
                //row.CreateCell(35, CellType.String).SetCellValue(objProductData[i].OP130人工判定结果);
                //row.CreateCell(36, CellType.String).SetCellValue(objProductData[i].OP130操作员);
                row.CreateCell(0, CellType.String).SetCellValue(objProductData[i].产品下线时间.ToString());
                row.CreateCell(1, CellType.String).SetCellValue(objProductData[i].产品型号);
                row.CreateCell(2, CellType.String).SetCellValue(objProductData[i].序列号);
                row.CreateCell(3, CellType.String).SetCellValue(objProductData[i].总成码);
                row.CreateCell(4, CellType.String).SetCellValue(objProductData[i].总结果);
                row.CreateCell(5, CellType.String).SetCellValue(objProductData[i].内部码);

                row.CreateCell(6, CellType.String).SetCellValue(objProductData[i].OP101结果);
                row.CreateCell(7, CellType.String).SetCellValue(objProductData[i].OP101完成时间);
                row.CreateCell(8, CellType.String).SetCellValue(objProductData[i].OP101操作时间);

                row.CreateCell(9, CellType.String).SetCellValue(objProductData[i].OP102结果);
                row.CreateCell(10, CellType.String).SetCellValue(objProductData[i].OP102操作时间);

                row.CreateCell(11, CellType.String).SetCellValue(objProductData[i].OP10结果);
                row.CreateCell(12, CellType.String).SetCellValue(objProductData[i].OP10操作时间);
                
                row.CreateCell(13, CellType.String).SetCellValue(objProductData[i].OP20结果);
                row.CreateCell(14, CellType.String).SetCellValue(objProductData[i].OP20操作时间);
                
                row.CreateCell(15, CellType.String).SetCellValue(objProductData[i].OP30结果);
                row.CreateCell(16, CellType.String).SetCellValue(objProductData[i].OP30操作时间);
                
                row.CreateCell(17, CellType.String).SetCellValue(objProductData[i].OP40结果);
                row.CreateCell(18, CellType.String).SetCellValue(objProductData[i].OP40操作时间);
                
                row.CreateCell(19, CellType.String).SetCellValue(objProductData[i].OP50结果);
                row.CreateCell(20, CellType.String).SetCellValue(objProductData[i].OP50操作时间);
                
                row.CreateCell(21, CellType.String).SetCellValue(objProductData[i].OP60结果);
                row.CreateCell(22, CellType.String).SetCellValue(objProductData[i].OP60操作时间);
                
                row.CreateCell(23, CellType.String).SetCellValue(objProductData[i].OP70结果);
                row.CreateCell(24, CellType.String).SetCellValue(objProductData[i].OP70操作时间);
                
                row.CreateCell(25, CellType.String).SetCellValue(objProductData[i].OP80结果);
                row.CreateCell(26, CellType.String).SetCellValue(objProductData[i].OP80操作时间);
                
                row.CreateCell(27, CellType.String).SetCellValue(objProductData[i].OP90结果);
                row.CreateCell(28, CellType.String).SetCellValue(objProductData[i].OP90操作时间);
                
                row.CreateCell(29, CellType.String).SetCellValue(objProductData[i].OP100结果);
                row.CreateCell(30, CellType.String).SetCellValue(objProductData[i].OP100操作时间);
                row.CreateCell(31, CellType.String).SetCellValue(objProductData[i].OP100人工判定结果);

                row.CreateCell(32, CellType.String).SetCellValue(objProductData[i].返修次数);
            }

            //选择文件位置
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";
            sfd.Title = "请选择要保存的文件";
            sfd.Filter = "Excel表格|*.xlsx";
            sfd.ShowDialog(this);
            string path = sfd.FileName;

            //将输出流写入Excel工作簿
            try
            {
                using (FileStream fSwrite = File.OpenWrite(path))
                {
                    workbook.Write(fSwrite);
                    MessageBox.Show("保存成功");
                }
            }
            catch
            {

            }
        }
    }
    
}
